<?php
namespace app\common\model\index;

use think\admin\Model;

/**
 * 官网配置
 * @package app\common\model\index
 * @author wangqinghui
 * @DateTime 2024-10-09 16:17:51
 */
class ConfigModel extends Model
{

    // 设置当前模型对应的完整数据表名称
    protected $name = 'index_config';

    // 自动写入时间戳
    protected $autoWriteTimestamp = false;

    /**
     * 日志名称
     * @var string
     */
    protected $oplogName = '官网配置';

    /**
     * 日志类型
     * @var string
     */
    protected $oplogType = '官网配置管理';

    /**
     * 获取指定数据列表
     * @param string $type 数据类型
     * @param array $data 外围数据
     * @param string $field 外链字段
     * @param string $bind 绑定字段
     * @return array
     */
    public static function items(string $type, array &$data = [], string $field = 'base_code', string $bind = 'base_info'): array
    {
        $map = ['type' => $type, 'status' => 1, 'deleted' => 0];
        $bases = static::mk()->where($map)->order('sort desc,id asc')->column('code,name,content', 'code');
        if (count($data) > 0) foreach ($data as &$vo) $vo[$bind] = $bases[$vo[$field]] ?? [];
        return $bases;
    }

    /**
     * 获取所有数据类型
     * @param boolean $simple 加载默认值
     * @return array
     */
    public static function types(bool $simple = false): array
    {
        $types = static::mk()->where(['deleted' => 0])->distinct()->column('type');
        if (empty($types) && empty($simple)) $types = [lang('默认配置')];
        return $types;
    }
}